package com.stores.toolset;

public class InputValidator {
	private static final char[] whiteList = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@-+().[]'"
			.toCharArray();

	public char[] getWhiteList() {
		return whiteList;
	}

	/**
 * 
 */
	public boolean isValid(String input) {
		char[] inputChars = input.toCharArray();
		for (char inputChar : inputChars) {
			switch (inputChar) {
			case 'a':
			case 'b':
			case 'c':
			case 'd':
			case 'e':
			case 'f':
			case 'g':
			case 'h':
			case 'i':
			case 'j':
			case 'k':
			case 'l':
			case 'm':
			case 'n':
			case 'o':
			case 'p':
			case 'q':
			case 'r':
			case 's':
			case 't':
			case 'u':
			case 'v':
			case 'w':
			case 'x':
			case 'y':
			case 'z':
			case 'A':
			case 'B':
			case 'C':
			case 'D':
			case 'E':
			case 'F':
			case 'G':
			case 'H':
			case 'I':
			case 'J':
			case 'K':
			case 'L':
			case 'M':
			case 'N':
			case 'O':
			case 'P':
			case 'Q':
			case 'R':
			case 'S':
			case 'T':
			case 'U':
			case 'V':
			case 'W':
			case 'X':
			case 'Y':
			case 'Z':
			case '0':
			case '1':
			case '2':
			case '3':
			case '4':
			case '5':
			case '6':
			case '7':
			case '8':
			case '9':
			case '-':
			case '+':
			case '@':
			case ' ':
			case '\'':
			case '(':
			case ')':
			case '[':
			case ']':
			case '.':
			case ',':
			case '"':
			case ':':
			case ';':
			case '$':
				continue;
			default:
				return false;
			}
		}
		return true;
	}

	/**
	 * 
	 * @param input
	 * @param maxLength
	 * @return
	 */
	public boolean isValid(String input, int maxLength) {
		return input.length() <= maxLength;
	}
}
